var selectedProd = null;
var selectedKat = null;
var currentKatId = null;
var currentProdId = null;
var ignoreAutoSelect = false;

// Ruft die Detailansicht der übergebenen Produkt ID auf
function selectKategory(katID) {
	if (selectedKat)
		selectedKat.removeClass("selected");
	
	var requestData = "ajax=1&c=Product&a=GetProducts&kid=" + katID;
	var filterData = $("#produkt_filter").val();
	if (!stringIsNullOrEmpty(filterData))
		requestData += "&prod_name=" + filterData;
		
	$.ajax({
		type: "POST",
		url: "index.php",
		data: requestData,
		success: onKategoryData
	});
	
	currentKatId = katID;
	selectedKat = $("#kat-" + katID);
	selectedKat.addClass("selected");
	var catName = $("#kat_" + katID + "_name").html();
	$("#produkt_filter").attr("placeholder", catName + " durchsuchen");
	$("#produkt-view").html("");
}

// Callback funktion zum anzeigen des Call Results
function onKategoryData(data) {
	if (!isJSON(data))
	{
		showError(data);
		return;
	}
	
	var json = $.parseJSON(data);
	if (!showError(json.error))
	{
		$("#produkt-list").html(json.view);
		hideError();
	}
}

// Ruft die Detailansicht der übergebenen Produkt ID auf
function showProdukt(prodID) {
	if (selectedProd)
		selectedProd.removeClass("selected");
	
	$.ajax({
		type: "POST",
		url: "index.php",
		data: "ajax=1&c=Product&a=Detail&p_id=" + prodID,
		success: onShowProdukt
	});
	
	currentProdId = prodID;
	selectedProd = $("#prod-" + prodID);
	selectedProd.addClass("selected");
}

// Callback funktion zum anzeigen des Call Results
function onShowProdukt(data) {
	if (!isJSON(data))
	{
		showError(data);
		return;
	}
	
	var json = $.parseJSON(data);
	if (!showError(json.error))
	{
		$("#produkt-view").html(json.view);
		hideError();
	}
}

// Löscht ein Produkt
function deleteProduct(prodID) {
	$.ajax({
		type: "POST",
		url: "index.php",
		data: "ajax=1&c=Product&a=DeleteProdukt&p_id=" + prodID,
		success: onDeleteProdukt
	});
}

function onDeleteProdukt(data) {
	if (!isJSON(data))
	{
		showError(data);
		return;
	}
	
	var json = $.parseJSON(data);
	if (!showError(json.error))
	{
		currentProdId = null;
		selectKategory(currentKatId);
		hideError();
	}
}

// Callback wenn das Produkt gespeichert wurde
function onSaveComplete(viewResponse)
{
	selectKategory(currentKatId);
	showProdukt(viewResponse.data['id']);
}